function gotoPage(obj,url) {
		var form = $(obj).parents("form")[0];
		var gopage = new Number($(form).find(".go_page").val());// 要跳往的页数
		var totalPages = new Number($(form).find(".total_pages").val());// 总分页数
		if (!isNaN(gopage) && gopage != "") {
			if (gopage > 0) {
				if (gopage > totalPages) {
					alert("您输入的页数过大.");
					return;
				} else {
					$(form).find(".currentPage").val(gopage);
					var form = $(obj).parents("form");
					form.attr("action",url);
					form.submit();
				}
			} else {
				alert("输入的跳转页面错误不存在");
				return;
			}
		} else {
			alert("没有定义id 为go_page 表单域");
			return;
		}
}

function gotoPageAjax(obj,url,pcallback,jsonp) {
		var form = $(obj).parents("form")[0];
		var dtype = "text";
		if(jsonp){
			dtype = "jsonp";
		}
		var gopage = new Number($(form).find(".go_page").val());// 要跳往的页数
		var totalPages = new Number($(form).find(".total_pages").val());// 总分页数
		if (!isNaN(gopage) && gopage != "") {
			if (gopage > 0) {
				if (gopage > totalPages) {
					alert("您输入的页数过大.");
					return;
				} else {
					$(form).find(".currentPage").val(gopage);
					$.ajax({url : url,
						data : $(form).serialize(),
						dataType : "json",
						type : 'post',
						cache : false,
						success : function(data, textStatus,
								XMLHttpRequest) {
								try {
									pcallback(data);
								} catch (e) {
									alert(e.message);
								}
						},
						error: function(XMLHttpRequest, textStatus,
								errorThrown) {
							if (XMLHttpRequest.status == 500) {
								alert(XMLHttpRequest.responseText);
							}
						}
					 });
				}
			} else {
				alert("输入的跳转页面错误不存在");
				return;
			}
		} else {
			alert("没有定义id 为go_page 表单域");
			return;
		}
}

function turnPage(obj,url,index){
	var form = $(obj).parents("form");
	$(form).find(".currentPage").val(index);
	form.attr("action",url);
	form.submit();
}

function turnPageAjax(obj,url,index,pcallback,jsonp){
	var form = $(obj).parents("form")[0];
	$(form).find(".currentPage").val(index);
	var dtype = "text";
	if(jsonp){
		dtype = "jsonp";
	}
	lock();
	$.ajax({url : url,
		data : $(form).serialize(),
		dataType : dtype,
		type : 'post',
		cache : false,
		success : function(data, textStatus,
				XMLHttpRequest) {
				try {
					pcallback(data);
				} catch (e) {
					alert(e.message);
				}
				unlock();
		},
		error: function(XMLHttpRequest, textStatus,
				errorThrown) {
			if (XMLHttpRequest.status == 500) {
				alert(XMLHttpRequest.responseText);
			}
			  unlock();
		}
	 });
}

/**
 * 自动增长函数
 * @param obj iframe id 或iframe 本身
 * @param force 是否允许父级页面增长，如允许父级页面也必须引入comm.js
 * @param defaultHeight 默认高度
 */
function setCwinHeight(obj,force,defaultHeight) {
	var cwin = obj;
	if(!defaultHeight){
		defaultHeight = 0;
	}
	if (document.getElementById) {
		if (typeof obj == "string")
			cwin = document.getElementById(obj);
		if (cwin && !window.opera) {
			if (cwin.Document && cwin.Document.body
					&& cwin.Document.body.scrollHeight)
				if(cwin.Document.body.scrollHeight  < defaultHeight)
				   cwin.height = defaultHeight;// IE
				else{
					  cwin.height = cwin.Document.body.scrollHeight + 10;
				}
			else if (cwin.contentDocument && cwin.contentDocument.body // FF
					&& cwin.contentDocument.body.offsetHeight)
				if(cwin.contentDocument.body.offsetHeight  < defaultHeight)
					cwin.height = defaultHeight;
				else{
					cwin.height = cwin.contentDocument.body.offsetHeight + 50;
				}
		} else if (cwin && cwin.contentWindow
				&& cwin.contentWindow.document.body.scrollHeight)
			if(cwin.contentWindow.document.body.scrollHeight+defaultHeight < defaultHeight)
				cwin.height = defaultHeight;// Opera
			else{
				cwin.height = cwin.contentWindow.document.body.scrollHeight;
			}
	}
	if (force && window.parent && window.parent.document != window.document) {
		if(typeof(window.parent.setCwinHeight)=="function"){
			window.parent.setCwinHeight(window.parent,true);
		}
	}
}

// 获取项目根路径+虚拟路径// 如Http://localhost:8080/qxpt/
function getRootPath(context) {
	var rootpath = "";
	try{
		// 获取当前网址
		var strFullPath = window.document.location.href;
		var strPath = window.document.location.pathname;
		// 获取主机地址，
		var prePath = strFullPath.substring(0, strFullPath.indexOf(strPath));
		if(!context){context = _WEB_CONTEXT_;}
		rootpath = (prePath + context+"/");
	}catch(e){
	};
	return rootpath;
}

/**
 * swfupload 上传路径加上session id
 * @param url 相对路径
 * @returns {String}
 */
function uploadUrl(url,sessionId){
	return getRootPath()+url+";jsessionid="+sessionId;
}



/**
 * 获取url参数
 * @return {}
 */
 function GetRequest() {
	   var url = location.search; //获取url中"?"符后的字串
	   var theRequest = new Object();
	   if (url.indexOf("?") != -1) {
	      var str = url.substr(1);
	      strs = str.split("&");
	      for(var i = 0; i < strs.length; i ++) {
	         theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
	      }
	   }
	   return theRequest;
	}

 /**
  * 注销
  * _CAS_URL_ cas 服务地址，定义在header.jsp 中。
  * isBack 是否是后台
  */
 function logout(casurl,isBack){
 	if(!casurl){
 		casurl =_CAS_URL_;
 	}
 	var casPath = casurl +'/logout';
 	$.ajax({
 			url:casPath,
 			type:"get",
 			dataType:"jsonp",
             complete: function(xhr, textStatus) {
             	 setTimeout(function() { window.location.href=getRootPath()+"logout"+ (!isBack?'':'?m=1');}, 100);
 			}
 	});
 }
 
 /**
 * Title: 用于自动检查表单的输入是否符合要求的JS文件
 * Description:
 1.使用方法(注意字母大小写)
 在你要检查的控件上加上属性
		CK_TYPE 	要检查的类型，多种类型可以用逗号组合起来
		CK_NAME 	出错时，显示的出错字段名
		CK_MSG_XXXX  定制的出错信息,XXXX表示可以是任意要检查的类型

	举例(必须一次包含下列js文件):
	<SCRIPT language=javascript src="include/js/trimspace.js"></script>
	<Script language="JavaScript"  src="include/js/checkform.js"></Script>
	<Script language="JavaScript"  src="include/js/autocheckform.js"></Script>

	input name="postcode"  CK_TYPE="NotEmpty,Number,PostCode" CK_NAME="邮政编码"
	CK_MSG_NotEmpty = "邮政编码是无论如何都不可以为空的，请重新输入!"

	实际的测试样例是testjs目录下的Test_autoCheckForm.jsp

	目前可以使用的类型有:
	NotEmpty  	非空
	Number		数字
	Int		    数字    add by xq
	Date		日期
	Pselect      请选择   add by xq
	EMail		EMail地址
	Money        钱    add by xq
	Postcode	邮政编码
	Telphone	电话号码
    MobileNO  	手机号码
	NoSpace		不含空格
	Len_X		字符串长度要求为X,例如:Len_2 表示要求长度为2
    Float           可带小数点的数字。
	MaxLen_X	字符串长度要求最大为X,例如:MaxLen_2 表示要求长度最大为2
    MinLen_X	字符串长度要求最小为X,例如:MinLen_2 表示要求长度最小为2

  	如何修订和改进本文件:
	如果要添加新的类型，请在函数autoCheckForm(objForm)中添加相关的处理代码,并在上面的可用类型
	列表中给出说明即可
*/

/**
*自动检查表单的输入是否符合要求
*@param objForm 要检查的窗体
*/
function  autoCheckForm(objForm){
  var i;
  var elements = objForm.elements;
  for (i=0;i<elements.length;i++) {//遍历表单所有元素
    var objCheckItem;//要检查的项
    var strItemCKType;//要检查的格式列表，用逗号分隔
    objCheckItem = elements[i];
    if(objCheckItem.attributes['CK_TYPE'])
    	strItemCKType 	= objCheckItem.attributes['CK_TYPE'].nodeValue + ",";
    if (objCheckItem.attributes['CK_TYPE'] && objCheckItem.attributes['CK_TYPE'].nodeValue != null) {
      var iPosBegin = 0;
      var  iPosEnd = strItemCKType.indexOf(",",iPosBegin);

      while (iPosEnd > 0) {//遍历所有该字段要检查的格式要求
              var  sCKType ;
              sCKType = strItemCKType.substr(iPosBegin,iPosEnd - iPosBegin);

              if (sCKType  == "NotEmpty")	{//非空
                  if  (JsTrim(objCheckItem.value).length <=0) {
                      if (objCheckItem.attributes['CK_MSG_NotEmpty'] && objCheckItem.attributes['CK_MSG_NotEmpty'].nodeValue!=null) {
                              window.top.alert(objCheckItem.attributes['CK_MSG_NotEmpty'].nodeValue);
                      }
                      else {
                              window.top.alert(objCheckItem.attributes['CK_NAME'].nodeValue + "不能为空（包括全为空格视为空）!");
                      }
                      objCheckItem.focus();
                      return false;
                  }
              }
              else if (sCKType == "Number") {//数字
                  if (objCheckItem.value!=""&&fucCheckNUM(objCheckItem.value) == 0) {
                      if (objCheckItem.attributes['CK_MSG_Number'] && objCheckItem.attributes['CK_MSG_Number'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_Number'].nodeValue);
                      }
                      else {
                              alert(objCheckItem.attributes['CK_NAME'].nodeValue + "必须是数字!");
                      }
                      objCheckItem.select();
                      return false;
                  }
              }
              else if (sCKType == "Int") {//数字
                  if (objCheckItem.value!=""&&fucCheckInt(objCheckItem.value) == 0) {
                      if (objCheckItem.attributes['CK_MSG_Int'] && objCheckItem.attributes['CK_MSG_Int'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_Int'].nodeValue);
                      }
                      else {
                              alert(objCheckItem.attributes['CK_NAME'].nodeValue + "必须是整数!");
                      }
                      objCheckItem.select();
                      return false;
                  }
                  }
              else if (sCKType == "Money") {//数字
                  if (objCheckItem.value!=""&&checkMoney(objCheckItem.value) == -1) {
                      if (objCheckItem.attributes['CK_MSG_Money'] && objCheckItem.attributes['CK_MSG_Money'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_Int']&&objCheckItem.attributes['CK_MSG_Int'].nodeValue);
                      }
                      else {
                              alert(objCheckItem.attributes['CK_NAME'].nodeValue + "填写有误!");
                      }
                      objCheckItem.select();
                      return false;
                  }
              }
               else if (sCKType == "Double") {//双精度数（整数也可）
                      if (objCheckItem.value!=""&&fucCheckDouble(objCheckItem.value) == 0) {
                              if (objCheckItem.attributes['CK_MSG_Double'] && objCheckItem.attributes['CK_MSG_Double'].nodeValue!=null) {
                                      alert(objCheckItem.attributes['CK_MSG_Double'].nodeValue);
                              } else {
                                      alert(objCheckItem.attributes['CK_NAME'].nodeValue + "必须是小数（整数也可）!");
                              }

                              objCheckItem.select();
                              return false;
                      }
                  //alert("检测是小数！");
              }
              else if (sCKType == "Float") {  //带小数点的数字
                if(objCheckItem.value!=""&&objCheckItem.value!=null){
                if (chknbr(objCheckItem.value,1,0) == 0) {
                      if (objCheckItem.attributes['CK_MSG_Float'] && objCheckItem.attributes['CK_MSG_Float'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_Float'].nodeValue);
                      } else {
                              alert(objCheckItem.attributes['CK_NAME'].nodeValue + "必须是数字!");
                      }

                      objCheckItem.select();
                      return false;
                      }
                }
              }
              else if (sCKType == "Date") {//日期
                  if (objCheckItem.value!=""&&chkdate(objCheckItem.value) == 0) {
                      if (objCheckItem.attributes['CK_MSG_Date'] && objCheckItem.attributes['CK_MSG_Date'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_Date'].nodeValue);
                      }
                      else {
                              alert(objCheckItem.attributes['CK_NAME'].nodeValue + "的格式无效!正确格式：yyyy-mm-dd");
                      }
                      objCheckItem.select();
                      return false;
                  }
              }
              else if (sCKType == "English") { //英文字母和数字
                  if (isEnglish(objCheckItem.value)==0){
                      if (objCheckItem.attributes['CK_MSG_English'] && objCheckItem.attributes['CK_MSG_English'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_English'].nodeValue);
                      }
                      else {
                              alert(objCheckItem.attributes['CK_NAME'].nodeValue + "只能含有英文字母和数字!");
                      }
                      objCheckItem.select();
                      return false;
                  }
              }
              else if (sCKType == "Pselect") {//选择
                  if (objCheckItem.value=="-1") {
                      if (objCheckItem.attributes['CK_MSG_Pselect'] && objCheckItem.attributes['CK_MSG_Pselect'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_Pselect'].nodeValue);
                      }
                      else {
                              alert("请选择"+objCheckItem.attributes['CK_NAME'].nodeValue );
                      }
                      objCheckItem.focus();
                      return false;
                  }
              }
              else if (sCKType == "EMail") {//EMail地址
                  if (objCheckItem.value!=""&&chkemail(objCheckItem.value) == 0) {
                      if (objCheckItem.attributes['CK_MSG_EMail'] && objCheckItem.attributes['CK_MSG_EMail'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_EMail'].nodeValue);
                      }
                      else {
                              alert(objCheckItem.attributes['CK_NAME'].nodeValue + "的格式无效!正确格式：1. 必须有@和.符号\n2. 不能包含空格且@前至少要有三位字符");
                      }
                      objCheckItem.select();
                      return false;
                  }
              }
              else if (sCKType == "Postcode") {//邮政编码
                  if (objCheckItem.value!=""&&fucCheckPostcode(objCheckItem.value) == 0) {
                      if (objCheckItem.attributes['CK_MSG_Postcode'] && objCheckItem.attributes['CK_MSG_Postcode'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_Postcode'].nodeValue);
                      }
                      else {
                              alert(objCheckItem.attributes['CK_NAME'].nodeValue + "的格式无效!");
                      }
                      objCheckItem.select();
                      return false;
                  }
              }
              else if(sCKType=="Telphone"){//电话号码
                  if(objCheckItem.value!=""&&fucCheckTEL(objCheckItem.value)==0) {
                      if(objCheckItem.attributes['CK_MSG_Telphone'] && objCheckItem.attributes['CK_MSG_Telphone'].nodeValue!=null) {
                          alert(objCheckItem.attributes['CK_MSG_Telphone'].nodeValue);
                      }
                      else{
                         alert(objCheckItem.attributes['CK_NAME'].nodeValue + "的格式无效!");
                      }
                      objCheckItem.select();
                      return false;
                  }
              }
               else if(sCKType=="MobileNO"){//手机号码
                  if(objCheckItem.value!=""&&fucCheckNUM(objCheckItem.value)==0) {
                      if(objCheckItem.attributes['CK_MSG_Telphone'] && objCheckItem.attributes['CK_MSG_Telphone'].nodeValue!=null) {
                          alert(objCheckItem.attributes['CK_MSG_Telphone'].nodeValue);
                      }
                      else{
                         alert(objCheckItem.attributes['CK_NAME'].nodeValue + "的格式无效!");
                      }
                      objCheckItem.select();
                      return false;
                  }
              }
              else if (sCKType == "NoSpace") {//不含空格
                  if (chkspc(objCheckItem.value) == 0) {
                      if (objCheckItem.attributes['CK_MSG_NoSpace'] && objCheckItem.attributes['CK_MSG_NoSpace'].nodeValue!=null) {
                              alert(objCheckItem.attributes['CK_MSG_NoSpace'].nodeValue);
                      }
                      else {
                              alert(objCheckItem.attributes['CK_NAME'].nodeValue + "不能含有空格符!");
                      }
                      objCheckItem.select();
                      return false;
                  }
              }
              else if (sCKType == "IDCardNum") {//身份证号

              }
              else if (sCKType.indexOf("MaxLen_") >=0 ) {//MaxLen_X 字符串长度要求最大为X,例如:MaxLen_2 表示要求长度最大为2
                      var iLen;
                      iLen =parseInt(sCKType.substr(sCKType.indexOf("_")+1));
                      if (fucCheckLength(objCheckItem.value) > iLen) {
                              if (objCheckItem.attributes['CK_MSG_MaxLen_X'] && objCheckItem.attributes['CK_MSG_MaxLen_X'].nodeValue!=null) {
                                      alert(objCheckItem.attributes['CK_MSG_MaxLen_X'].nodeValue);
                              } else {
                                      alert(objCheckItem.attributes['CK_NAME'].nodeValue + "长度最大为" + iLen + "!");
                              }
                              objCheckItem.select();
                              return false;
                      }
              }
              else if (sCKType.indexOf("MinLen_") >=0 ) {//MinLen_X 字符串长度要求最小为X,例如:MinLen_2 表示要求长度最小为2
                      var iLen;
                      iLen = sCKType.substr(sCKType.indexOf("_")+1);

                      if (objCheckItem.value.length < iLen) {
                              if (objCheckItem.attributes['CK_MSG_Len_X'] && objCheckItem.attributes['CK_MSG_Len_X'].nodeValue!=null) {
                                      window.top.alert(objCheckItem.attributes['CK_MSG_MinLen_X'].nodeValue);
                              }
                              else {
                                      window.top.alert(objCheckItem.attributes['CK_NAME'].nodeValue + "长度最小为" + iLen + "!");
                              }
                              objCheckItem.select();
                              return false;
                      }
              }
              else if (sCKType.indexOf("Len_") >=0 ) {//Len_X 字符串长度要求为X,例如:Len_2 表示要求长度为2
                      var iLen;
                      iLen = sCKType.substr(sCKType.indexOf("_")+1);

                      if (objCheckItem.value.length != iLen) {
                              if (objCheckItem.attributes['CK_MSG_Len_X'] && objCheckItem.attributes['CK_MSG_Len_X'].nodeValue!=null) {
                                      window.top.alert(objCheckItem.attributes['CK_MSG_Len_X'].nodeValue);
                              } else {
                                      window.top.alert(objCheckItem.attributes['CK_NAME'].nodeValue + "长度不满足要求!");
                              }
                              objCheckItem.select();
                              return false;
                      }
              }
              else {
                alert("没有定义此类型的检查函数！");
                return false;
              }

              iPosBegin =  iPosEnd +1;
              iPosEnd = strItemCKType.indexOf(",",iPosBegin)
      }
    }
  }
}

//函数名：fucCheckLength
//功能介绍：检查字符串的长度
//参数说明：要检查的字符串
//返回值：长度值
function fucCheckLength(strTemp)
{
var i,sum;
sum=0;
for(i=0;i<strTemp.length;i++)
{
if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))
sum=sum+1;
else
sum=sum+2;
}
return sum;
}
